package Servlet.Admin;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import Creche.Admin.Administrateur;
import Form.ConnexionForm;

@SuppressWarnings("serial")
public class Connexion extends HttpServlet {
	
	public static final String URL_REDIRECTION = "accueilAdmin.jsp";
	public static final String VUE = "/WEB-INF/connexion.jsp";
	public static final String ADMIN = "admin";
    public static final String FORM = "form";
    public static final String SESSION = "session";
 
    
    public void doGet(HttpServletRequest req, HttpServletResponse resp) 
    		throws ServletException, IOException {
    	
		Administrateur admin = (Administrateur) req.getSession().getAttribute("session");

		if (admin == null) {
			/* Affichage de la page de connexion */
			this.getServletContext().getRequestDispatcher( VUE ).forward(req, resp);
		}
        else {
			resp.sendRedirect(URL_REDIRECTION);
		}
    }
 
    
    public void doPost(HttpServletRequest req, HttpServletResponse resp) 
    		throws ServletException, IOException {
        
	        ConnexionForm form = new ConnexionForm();
	        Administrateur admin = form.connecterAdmin(req);
	        
	 
	        /**
	         * Si aucune erreur de validation n'a eu lieu alors on ajoute l'
	         * Adminitrateur à la session sinon on le supprime de la session
	         * et on le redirige vers la page d'accueil pour qu'il fasse ses modifs
	         */
	        if (form.getErreurs().isEmpty() && form.getInscrit()) {
	        	req.getSession().setAttribute(SESSION, admin);
	            resp.sendRedirect(URL_REDIRECTION);
	        } 
	        else {
	        	req.getSession().setAttribute(SESSION, null);
	        }
	 
	        req.setAttribute(FORM, form);
	        req.setAttribute(ADMIN, admin);
	        
	        /* Transmission de la paire d'objets request/response à notre JSP */
	        this.getServletContext().getRequestDispatcher( VUE ).forward(req, resp);
		
    }
}
